﻿using System;
using System.Collections.Generic;
using System.Text;


///========================================================================
/// Summary	: <Khai bao cac tai khoan o day>
/// Author	: <Van Vo>, <20070527>
/// 
/// Revision History:
/// 
/// [20070527]		[Van Vo]		[Create]
/// 
/// [20071010] [Haids] [update ASSE1: Tài sản cố định vô hình]
///========================================================================	
namespace Lapas.Common
{
    

    /// <summary>
    /// Mã tương ứng với mỗi nghiệp vụ (thường sẽ insert vào bút toán ở cột transactionCode), có 5 ký tự
    /// 20080105 TriDM
    /// </summary>
    public enum ProfessionalTaskCode
    {
        /// <summary>
        /// ALL = Tất cả
        /// </summary>
        ALL=0,
        /// <summary>
        /// MORTA = Nghiệp vụ cầm cố
        /// </summary>
        MORTA,
        /// <summary>
        /// ASSET = Khấu hao tài sản cố định
        /// </summary>
        ASSET,
        /// <summary>
        /// INTER = Tính lãi
        /// </summary>
        INTED,
        /// <summary>
        /// INTER = Tính lãi
        /// </summary>
        INTEF,
        /// <summary>
        /// STFEE = Tính phí lưu ký
        /// </summary>
        STFEE,
        /// <summary>
        /// ONACC = Ứng trước
        /// </summary>
        ONACC,
        /// <summary>
        /// BCAST = Mua tiền bán
        /// </summary>
        BCAST,
        /// <summary>
        /// BCASC Buy cash contract Coloect defb
        /// </summary>
        BCASC,
        /// <summary>
        /// REXEC = Thực hiện quyền
        /// </summary>
        REXEC,
        /// <summary>
        /// REXOL = Thực hiện quyền Online
        /// </summary>
        REXOL,
        /// <summary>
        /// ORDER = Đặt lệnh
        /// </summary>
        ORDER,
        /// <summary>
        /// DEPO = Lưu ký
        /// </summary>
        DEPO,
        /// <summary>
        /// STRAN = Chuyển khoản CK
        /// </summary>
        STRAN,
        /// <summary>
        /// ODDST: Odd Stock Transaction Giao dịch lô lẻ
        /// </summary>
        ODDST,
        /// <summary>
        /// UTIL3: tiện ích kế toán số 3 chuyển khoản
        /// </summary>
        UTIL3,
        /// <summary>
        /// UTIL_: tiện ích kế toán nói chung
        /// </summary>
        UTIL_,
        /// <summary>
        /// APTT3: Hạch toán tự động T-T3
        /// </summary>
        APTT3,

        /// <summary>
        /// DEFER: Hạch toán chậm tiền ngày T
        /// </summary>
        DEFER,
        /// <summary>
        /// Kết chuyển lỗ lãi
        /// </summary>
        PROFI,

        /// <summary>
        /// giam tru phi khuyen mai
        /// </summary>
        AMORT,
        
        #region "Yêu cầu từ MHBS"
        //20090819 Haids: update
        //•	Chuyển khoản chứng khoán:
        /// <summary>
        /// STRA1 = Chuyển khoản thừa kế
        /// </summary>
        STRA1,
        /// <summary>
        /// STRA2 = Chuyển khoản tất toán tài khoản
        /// </summary>
        STRA2,
        /// <summary>
        /// STRA3 = Chuyển khoản sửa lỗi giao dịch
        /// </summary>
        STRA3,
        /// <summary>
        /// STRA4 = Chuyển khoản hỗ trợ thanh toán
        /// </summary>
        STRA4,
        /// <summary>
        /// STRA5 = Chuyển khoản hoàn trả hỗ trợ thanh toán
        /// </summary>
        STRA5,
        /// <summary>
        /// STRA6 = Chuyển khoản khác
        /// </summary>
        STRA6,

        //•	Nhận chuyển khoản chứng khoán:
        /// <summary>
        /// SRCE1 = Nhận chuyển khoản thừa kế
        /// </summary>
        SRCE1,
        /// <summary>
        /// SRCE2 = Nhận chuyển khoản tất toán tài khoản
        /// </summary>
        SRCE2,
        /// <summary>
        /// SRCE3 = Nhận chuyển khoản sửa lỗi giao dịch
        /// </summary>
        SRCE3,
        /// <summary>
        /// SRCE4 = Nhận chuyển khoản hỗ trợ thanh toán
        /// </summary>
        SRCE4,
        /// <summary>
        /// SRCE5 = Nhận chuyển khoản hoàn trả hỗ trợ thanh toán
        /// </summary>
        SRCE5,
        /// <summary>
        /// SRCE6 = Nhận chuyển khoản khác
        /// </summary>
        SRCE6,

        /// <summary>
        /// CHKNB = Chuyển khoản nội bộ
        /// </summary>
        CHKNB,

        /// <summary>
        /// CKOL1 = Chuyen khoan Online
        /// </summary>
        CKOL1,
        #endregion
    }

    //[Obsolete("20080607 TriDM: sẽ bỏ lớp này, thay vào đó là sử dụng enum ProfessionalTaskCode")]
    public static class ProfessionalTask
    {
        // Tat ca cac ma nghiep vu co dinh dang 5 ky tu
        // TrasactionCode trong Database gom 10 ky tu: 5 ky tu con lai danh cho so thu tu
        public const string MORTAGE = "MORTA"; // Cam co
        public const string MARGIN = "MARGI"; // Cam co
        public const string ASSET = "ASSET"; // Khau hao tai san cố định
        public const string INTEREST = "INTER"; //Tinh lai
        public const string STOCKFEE = "DEPFE"; // Tinh phi
        /// <summary>
        /// Ứng trước
        /// </summary>
        public const string ONACCOUNT = "ONACC";
        /// <summary>
        /// Mua tiền bán
        /// </summary>
        public const string BUYCAST = "BCAST";

        public const string BCASC = "BCASC";
        /// <summary>
        /// Thực hiện quyền
        /// </summary>
        public const string RIGHTEXEC = "REXEC";
        /// <summary>
        /// Đặt lệnh
        /// </summary>
        public const string ORDER = "ORDER";
        public const string DEPOSITORY_1 = "DEPO1"; // Cho Luu ky
        public const string DEPOSITORY_2 = "DEPO2"; // Hach toan bao no
        public const string DEPOSITORY_3 = "DEPO3";
        public const string DEPOSITORY_4 = "DEPO4";
        // 20071213 TriDM: bo sung
        public const string STOCKTRANSFER = "STRAN"; 
        public const string ODDSTOCKTRANS="ODDST";//Giao dịch lô lẻ

        /// <summary>
        /// Tiện ích kết toán số 3: Chuyển khoản
        /// chỉ dùng cho các công ty vẫn đang quản lý tiền nhà đầu tư
        /// </summary>
        public const string UTILITY_3 = "UTIL3";

        public const string UTILITY = "UTIL_";

        /// <summary>
        /// Hạch toán tự động T-T3
        /// </summary>
        public const string APTT3       = "APTT3";
        public const string DEFER = "DEFER";
        public const string IMPORT = "IMPORT";

        public const string PROFI = "PROFI";
        public const string AMORT = "AMORT";

        /// <summary>
        /// Chuyển khoản nội bộ
        /// </summary>
        public const string CHKNB = "CHKNB";

        /// <summary>
        /// Chuyển khoản ngân hàng
        /// </summary>
        public const string CKOL1 = "CKOL1";
        public const string REXOL = "REXOL";
    }

    public enum ProfessionalTaskEnum
    {
        /// <summary>
        /// giảm trừ khuyến mãi
        /// </summary>
        AMORT,
        /// <summary>
        /// ASSET: Tính khấu hao tài sản cố định hữu hình
        /// N: 642411.9999.6424110001
        /// C: 214111.9999.2141110001
        /// </summary>
        ASSET,
        /// <summary>
        /// AST01: Tính khấu hao tài sản cố định vô hình
        /// N: 642411.9999.6424110001
        /// C: 214311.9999.2143110001
        /// </summary>
        AST01,
        /// <summary>
        /// INTER: Đổ lãi vào TK KH (N: 114111.9999.1141110001, C: 353111.3531.CustomerID)
        /// </summary>
        INTED,
        /// <summary>
        /// INTER: Đổ lãi vào TK KH (N: 114111.9999.1141110001, C: 353111.3531.CustomerID)
        /// </summary>
        INTEF,
        /// <summary>
        /// STFEE: Tính phí LK (1: N-112111.9999.1121110001, C-353111.3531.CustomerId; 2: N:353111.3531.CustomerId, C: 511611.9999.5116110001)
        /// </summary>
        STFEE,
        /// <summary>
        /// DEPO1: Tài khoản chờ lưu ký: (C:014311.9999.0143xxxxxx)
        /// </summary>
        DEPO1,
        /// <summary>
        /// DEPO2: Hạch toán báo nợ LK (5 bút toán)
        /// </summary>
        DEPO2,

        /// <summary>
        /// DEPO2: Hạch toán chuyển GD (3 bút toán)
        /// </summary>
        DEPO3,
        /// <summary>
        /// DEP11: Hạch toán chờ xuất: C: 012621.9999.CustomerId; N: 012121.9999.0121xxxx (P), N:013221.0132.CustomerID (H)
        /// </summary>
        DEPO4,
        /// <summary>
        /// DEPO4: Hạch toán xuất CK chờ LK: C: 012621.9999.CustomerId; N: 012121.9999.0121xxxx (P), N:013221.0132.CustomerID (H)
        /// </summary>
        DEPO11,
        /// <summary>
        /// DEP012: Hạch toán báo có của trung tâm lưu ký, N: 012621.9999.CustomerId
        /// </summary>
        DEPO12,
        /// <summary>
        /// Xác nhận hủy rút: N: 012621.9999.CustomerId; C: 012121.9999.0121xxxx (P), C:013221.0132.CustomerID (H)
        /// </summary>
        DEPO13,

        #region Mortgage
        /// <summary>
        /// MOR01: Cầm cố > Xuất chứng khoán cầm cố > Nhà đầu tư trong nước > Bút toán xuất
        /// Xuất: 012121.0121.CustomerId (Debit)
        /// </summary>
        MOR01,
        /// <summary>
        /// MOR02: Cầm cố > Xuất chứng khoán cầm cố > Nhà đầu tư trong nước > Bút toán nhập
        /// Nhập: 012321.0124.CustomerId (Credit)
        /// </summary>
        MOR02,
        /// <summary>
        /// MOR03: Cầm cố > Xuất chứng khoán cầm cố > Nhà đầu tư nước ngoài > Bút toán xuất
        /// Xuất: 013121.0131.CustomerId (Debit)
        /// </summary>
        MOR03,
        /// <summary>
        /// MOR04: Cầm cố > Xuất chứng khoán cầm cố > Nhà đầu tư nước ngoài > Bút toán nhập
        /// Nhập: 013321.0134.CustomerId (Credit)
        /// </summary>
        MOR04,
        /// <summary>
        /// MOR05: Cầm cố > Xuất chứng khoán cầm cố > Tự doanh > Bút toán xuất
        /// Xuất: 012113.9999.___P000001 (Debit)
        /// </summary>
        MOR05,
        /// <summary>
        /// MOR05: Cầm cố > Xuất chứng khoán cầm cố > Tự doanh > Bút toán nhập
        /// Nhập: 012311.9999.___P000001 (Debit)
        /// </summary>
        MOR06,
        /// <summary>
        /// MOR11: Cầm cố > Bút toán phát vay (CustomerPostype=0) 
        /// (N: 114111.9999.1141110003
        /// C: 353111.3531.CustomerId)
        /// </summary>        
        MOR11,
        /// <summary>
        /// MOR12: Cầm cố > Bút toán phát vay (CustomerPostype=1) NDT tai Dai Ly
        /// (N: 114111.9999.1141110003
        /// C: 353211.3531.CustomerId)
        /// </summary>        
        MOR12,
        /// <summary>
        /// MOR13: Cầm cố > Bút toán phát vay (CustomerPostype=1) NDT nuoc ngoai
        /// (N: 114111.9999.1141110003
        /// C: 353311.3531.CustomerId)
        /// </summary>        
        MOR13,

        /// <summary>
        /// MOR21: Cầm cố > Bút toán thu nợ (CustomerPostype=0)
        /// (N: 353111.3531.CustomerId 
        /// C: 114111.9999.1141110003)
        /// </summary>
        MOR21,
        /// <summary>
        /// MOR22: Cầm cố > Bút toán thu nợ (CustomerPostype=1) NDT tai Dai Ly
        /// (N: 353211.3531.CustomerId 
        /// C: 114111.9999.1141110003)
        /// </summary>
        MOR22,
        /// <summary>
        /// MOR23: Cầm cố > Bút toán thu nợ (CustomerPostype=1) NDT nuoc ngoai
        /// (N: 353311.3531.CustomerId 
        /// C: 114111.9999.1141110003)
        /// </summary>
        MOR23,
        /// <summary>
        /// MOR31: Cầm cố > Bút toán thu lãi (CustomerPostype=0) 
        /// (N: 353111.3531.CustomerId
        /// C: 114111.9999.1141110003)
        /// </summary>
        MOR31,
        /// <summary>
        /// MOR32: Cầm cố > Bút toán thu lãi (CustomerPostype=1) NDT tai Dai Ly
        /// (N: 353111.3531.CustomerId
        /// C: 114111.9999.1141110003)
        /// </summary>
        MOR32,
        /// <summary>
        /// MOR33: Cầm cố > Bút toán thu lãi (CustomerPostype=1) NDT nuoc ngoai
        /// (N: 353311.3531.CustomerId
        /// C: 114111.9999.1141110003)
        /// </summary>
        MOR33,
        /// <summary>
        /// MOR41: Cầm cố > Giải tỏa chứng khoán cầm cố > Nhà đầu tư trong nước > Bút toán nhập
        /// Nhập: 012121.0121.CustomerId (Credit)
        /// </summary>
        MOR41,
        /// <summary>
        /// MOR42: Cầm cố > Giải tỏa chứng khoán cầm cố > Nhà đầu tư trong nước > Bút toán xuất
        /// Xuất: 012321.0124.CustomerId (Debit)
        /// </summary>
        MOR42,
        /// <summary>
        /// MOR43: Cầm cố > Giải tỏa chứng khoán cầm cố > Nhà đầu tư nước ngoài > Bút toán nhập
        /// Nhập: 013121.0131.CustomerId (Credit)
        /// </summary>
        MOR43,
        /// <summary>
        /// MOR44: Cầm cố > Giải tỏa chứng khoán cầm cố > Nhà đầu tư nước ngoài > Bút toán xuất
        /// Xuất: 013321.0134.CustomerId (Debit)
        /// </summary>
        MOR44,
        /// <summary>
        /// MOR45: Cầm cố > Giải tỏa chứng khoán cầm cố > Nhà đầu tư nước ngoài > Bút toán nhập
        /// Nhập: 012113.9999.060P000001 (Debit)
        /// </summary>
        MOR45,
        /// <summary>
        /// MOR46: Cầm cố > Giải tỏa chứng khoán cầm cố > Nhà đầu tư nước ngoài > Bút toán xuất
        /// Xuất: 012311.9999.060P000001 (Debit)
        /// </summary>
        MOR46,
        #endregion

        /// <summary>
        /// REX01: Bút toán thực hiện quyền theo chứng khoán
        /// Nhập: 012121.0121.CustomerId (Credit)
        /// </summary>
        REX01,
        
        /// <summary>
        /// REX11: Bút toán thực hiện quyền theo chứng khoán (Tài khoản nước ngoài)
        /// Nhập: 013121.0131.CustomerId (Credit)
        /// </summary>
        REX11,
        
        /// <summary>
        /// REXHO: Right Exec at Head Office: bút toán thực hiện quyền bằng tiền mặt tại HS chính
        /// </summary>
        REXHO,
        /// <summary>
        /// REXBO: RightExec at Branch Office: bút toán thực hiện quyền bằng tiền mặt tại chi nhánh
        /// </summary>
        REXBO,

        /// <summary>
        /// REXHT: Right Exec at Head Office: bút toán thuế TNCN bằng tiền mặt tại HS chính
        /// </summary>
        REXHT,
        /// <summary>
        /// REXBT: RightExec at Branch Office: bút toán thuế TNCN bằng tiền mặt tại chi nhánh
        /// </summary>
        REXBT,

        /// <summary>
        /// REX10: Xuất chứng khoán
        /// </summary>
        REX10,
       
        /// <summary>
        /// REX33: Nộp tiền mặt tại quỹ - Đăng kí phát hành thêm
        /// N: 353111.3531.xxxxxxxxxx
        /// C: 337 chi tiết đến từng tổ chức phát hành
        /// 20080109 Tuanln
        /// </summary>
        REX33,
        /// REX34: Nộp tiền vào tài khoản tại ngân hàng - Đăng ký phát hành thêm
        /// N: 112
        /// C: 337 chi tiết đến từng tổ chức phát hành
        /// 20080109 Tuanln
        /// </summary>
        REX34,
        /// <summary>
        /// PAL01: ProfitAndLost - Bút toán thứ nhất kết chuyển doanh thu
        /// (N: 5XXXXX.XXXX.XXXXXXXXXX và 7XXXXX.XXXX.XXXXXXXXXX
        /// C: 911111.9999.9111110001) (chỉ cần khai báo vế có
        /// </summary>
        PAL01,
        /// <summary>
        /// PAL02: Bút toán thứ hai kết chuyển chi phí
        /// (N: 911111.9999.9111110001
        /// C: 6XXXXX.XXXX.XXXXXXXXXX và 8XXXXX.XXXX.XXXXXXXXXX)
        /// </summary>
        PAL02,
        /// <summary>
        /// PAL03: Bút toán xác định lỗ lãi
        /// Nếu currentBalance của 911111.9999.9111110001 <=0 hạch toán lãi
        /// N: 911111.9999.9111110001
        /// C: 421211.9999.4212110001
        /// 
        /// Nếu currentBalance của 911111.0000.911110001 > 0 hạch toán lỗ
        /// N: 421211.9999.4212110001
        /// C: 911111.9999.9111110001
        /// </summary>
        PAL03,
        /// <summary>
        /// PAL11: Bút toán 1 Kết chuyển chi phí trực tiếp (637 -> 631)
        /// (N: 6311XX.XXXX.XXXXXXXXXX
        ///  C: 63711,63721,63731,63741,63781.XXXX.XXXXXXXXXX)
        /// </summary>
        PAL11,
        /// <summary>
        /// PAL12: Bút toán 2 Kết chuyển chi phí trực tiếp (637 -> 631)
        /// (N: 6312XX.XXXX.XXXXXXXXXX
        ///  C: 63712,63722,63732,63742,63782.XXXX.XXXXXXXXXX)
        /// </summary>
        PAL12,
        /// <summary>
        /// PAL13: Bút toán 3 Kết chuyển chi phí trực tiếp (637 -> 631)
        /// (N: 6313XX.XXXX.XXXXXXXXXX
        ///  C: 63713,63723,63733,63743,63783.XXXX.XXXXXXXXXX)
        /// </summary>
        PAL13,
        /// <summary>
        /// PAL14: Bút toán 4 Kết chuyển chi phí trực tiếp (637 -> 631)
        /// (N: 6314XX.XXXX.XXXXXXXXXX
        ///  C: 63714,63724,63734,63744,63784.XXXX.XXXXXXXXXX)
        /// </summary>
        PAL14,
        /// <summary>
        /// PAL15: Bút toán 5 Kết chuyển chi phí trực tiếp (637 -> 631)
        /// (N: 6315XX.XXXX.XXXXXXXXXX
        ///  C: 63715,63725,63735,63745,63785.XXXX.XXXXXXXXXX)
        /// </summary>
        PAL15,

        /// <summary>
        /// PAL21: Bút toán 1 Kết chuyển giảm trừ doanh thu (511 -> 532)
        /// (N: 5111XX.XXXX.XXXXXXXXXX
        ///  C: 532111.XXXX.XXXXXXXXXX)
        /// </summary>
        PAL21,
        /// <summary>
        /// PAL22: Bút toán 2 Kết chuyển giảm trừ doanh thu (511 -> 532)
        /// (N: 5112XX.XXXX.XXXXXXXXXX
        ///  C: 532111.XXXX.XXXXXXXXXX)
        /// </summary>
        PAL22,
        /// <summary>
        /// PAL23: Bút toán 3 Kết chuyển giảm trừ doanh thu (511 -> 532)
        /// (N: 5113XX.XXXX.XXXXXXXXXX
        ///  C: 532111.XXXX.XXXXXXXXXX)
        /// </summary>
        PAL23,
        /// <summary>
        /// PAL24: Bút toán 4 Kết chuyển giảm trừ doanh thu (511 -> 532)
        /// (N: 5114XX.XXXX.XXXXXXXXXX
        ///  C: 532111.XXXX.XXXXXXXXXX)
        /// </summary>
        PAL24,
        /// <summary>
        /// PAL25: Bút toán 5 Kết chuyển giảm trừ doanh thu (511 -> 532)
        /// (N: 5115XX.XXXX.XXXXXXXXXX
        ///  C: 532111.XXXX.XXXXXXXXXX)
        /// </summary>
        PAL25,

        #region StockTransfer 20071121 TriDM
        /// <summary>
        /// ST001: Xuất chứng khoán chờ chuyển khoản (TK trong nước)
        /// Xuất: 012121.0121.CustomerId (Debit)
        /// </summary>
        ST001,
        /// <summary>
        /// ST002: Xuất chứng khoán chờ chuyển khoản (TK nước ngoài)
        /// Xuất: 013121.0121.CustomerId (Debit)
        /// </summary>
        ST002,
        /// <summary>
        /// ST003: Nhập chứng khoán chờ chuyển khoản vào TK nội bộ
        /// Nhập: 012122.9999.0121229999 (Credit)
        /// </summary>
        ST003,
        /// <summary>
        /// ST004: Xuất chứng khoán chờ chuyển khoản
        /// Xuất: 012122.9999.0121229999 (Debit)
        /// </summary>
        ST004,
        #endregion

        /// <summary>
        /// OST10: Hạch toán xuất CK lô lẻ - Hạch toán ngoại bảng
        /// N: 012121.0121.CustomerId Xuất CK GD trong nước
        /// N: 013121.0131.CustomerId Xuất CK GD nước ngoài
        /// C: 015111.9999.CompanyPrivateAccount: Tài khoản quản lý lô lẻ
        /// </summary>
        OST10,
        /// <summary>
        /// OST20: Hạch toán xuất CK lô lẻ - HS
        /// N: 121111xxxx: Tài khoản thanh toán chứng khoán lô lẻ mở theo stockcode
        /// C: 353111xxxx: Số tiền nhận được của từng khách hàng       
        /// </summary>
        OST20,
        /// <summary>
        /// OST21: Hạch toán xuất CK lô lẻ - Thue TNCN - HS
        /// </summary>
        OST21,
        /// <summary>
        /// OST22: Hạch toán xuất CK lô lẻ - CN 
        /// </summary>
        OST22,
        /// <summary>
        /// OST23: Hạch toán xuất CK lô lẻ - Thue TNCN - CN
        /// </summary>
        OST23,
        /// <summary>
        /// OST24: Hạch toán xuất chứng khoán lô lẻ - Chưa kết nối ngân hàng - Chi nhánh - Bút toán 2
        /// N: 114111xxxx: Tiền gửi nhà đầu tư tại ngân hàng
        /// C: 338811xxxx: Phải trả giao dịch lô lẻ
        /// </summary>
        OST24,
        /// <summary>
        /// OST25: Hạch toán xuất chứng khoán lô lẻ - Chưa kết nối ngân hàng - Chi nhánh - Bút toán 3
        /// N: 338811xxxx: Phải trả giao dịch lô lẻ
        /// C: 112111xxxx: Tiền gửi công ty chứng khoán tại ngân hàng
        /// </summary>
        OST25,
        /// <summary>
        /// OST30: Hạch toán xuất CK lô lẻ - Bút toán bù trừ hội sở và chi nhánh
        /// N: 121111xxxx: Tài khoản thanh toán lô lẻ mở theo stockcode
        /// C: 336111xxxx: Phải trả chi nhánh (giao dịch lô lẻ)        
        /// </summary>
        OST30,
        /// <summary>
        /// OST40: hạch toán xuất CK lô lẻ - Kết nối online - Hội sở chính - Bút toán 1
        /// N: 121111xxxx: Thanh toán ck lô lẻ 
        /// C: 338811xxxx: Phải trả giao dịch lô lẻ
        /// </summary>
        OST40,
        /// <summary>
        /// OST41: Hạch toán xuất CK lô lẻ - Kết nối online - Hội sở chính - Bút toán 2
        /// N: 338811xxxx: Phải trả giao dịch lô lẻ
        /// C: 112111xxxx: Tiền gửi công ty ck tại ngân hàng
        /// </summary>
        OST41,
        /// <summary>
        /// OST42: Hạch toán xuất CK lô lẻ - Kết nối online - chi nhánh - Bút toán 1
        /// N: 136111xxxx: Phải thu hội sở
        /// C: 338811xxxx: Phải trả giao dịch lô lẻ
        /// </summary>
        OST42,
        /// <summary>
        /// OST43: Hạch toán xuất CK lô lẻ - Kết nối online - chi nhánh - Bút toán 2
        /// N: 338811xxxx: Phải trả giao dịch lô lẻ
        /// C: 112111xxxx: Tiền gửi công ty tại ngân hàng
        /// </summary>
        OST43,
        /// <summary>
        /// OST50: Xuất ck lô lẻ tự doanh
        /// N: 015111.9999.CompanyPrivateAccount: Xuất CK lô lẻ của công ty        
        /// </summary>
        OST50,
        /// <summary>
        /// OST51: Nhập ck tự doanh
        /// C: 012111.9999.CompanyPrivateAccount: Nhập CK tự doanh của công ty
        /// </summary>
        OST51,

        #region 
        /// <summary>
        /// Profit shared With Bank for Advance Contract
        /// </summary>
        PWBAD,
        /// <summary>
        /// Profit shared With Bank for Mortgage Contract
        /// </summary>
        PWBMO,
        #endregion

        #region Dang ky phat hanh them
        /// <summary>
        /// REXRC = Right Exec Register Confirm: bút toán xác nhận thu tiền
        /// N: 353
        /// C: 337 (StockCode)
        /// </summary>
        REXRC,
        /// <summary>
        /// 20100426 Haids:
        /// REXDC = Right Exec Delete Confirm: Bút toán hủy xác nhận thu tiền
        /// Ngược với bút toán REXRC
        /// </summary>
        REXDC,
        /// <summary>
        /// N: 112111.9999.1121110001
        /// C: 114111.9999.1141119999 (trong nước)
        /// C: 114311.9999.1143119999 (nước ngoài)
        /// </summary>
        REXRD,
        #endregion

        #region "Yêu cầu từ MHBS"
        //20090819 Haids: update
        //•	Chuyển khoản chứng khoán:
        /// <summary>
        /// STRA1 = Chuyển khoản thừa kế
        /// </summary>
        STRA1,
        /// <summary>
        /// STRA2 = Chuyển khoản tất toán tài khoản
        /// </summary>
        STRA2,
        /// <summary>
        /// STRA3 = Chuyển khoản sửa lỗi giao dịch
        /// </summary>
        STRA3,
        /// <summary>
        /// STRA4 = Chuyển khoản hỗ trợ thanh toán
        /// </summary>
        STRA4,
        /// <summary>
        /// STRA5 = Chuyển khoản hoàn trả hỗ trợ thanh toán
        /// </summary>
        STRA5,
        /// <summary>
        /// STRA6 = Chuyển khoản khác
        /// </summary>
        STRA6,

        //•	Nhận chuyển khoản chứng khoán:
        /// <summary>
        /// SRCE1 = Nhận chuyển khoản thừa kế
        /// </summary>
        SRCE1,
        /// <summary>
        /// SRCE2 = Nhận chuyển khoản tất toán tài khoản
        /// </summary>
        SRCE2,
        /// <summary>
        /// SRCE3 = Nhận chuyển khoản sửa lỗi giao dịch
        /// </summary>
        SRCE3,
        /// <summary>
        /// SRCE4 = Nhận chuyển khoản hỗ trợ thanh toán
        /// </summary>
        SRCE4,
        /// <summary>
        /// SRCE5 = Nhận chuyển khoản hoàn trả hỗ trợ thanh toán
        /// </summary>
        SRCE5,
        /// <summary>
        /// SRCE6 = Nhận chuyển khoản khác
        /// </summary>
        SRCE6,

        #endregion

        /// <summary>
        /// CKOL1 = Bút toán cắt tiền của khách hàng Online
        /// N: 324
        /// C: 1123
        /// C: 1111
        /// </summary>
        CKOL1,
    }

    public partial class Helper
    {
        static List<ProfessionalTaskEnumObject> _ProfessionalTaskEnumList;
        public static List<ProfessionalTaskEnumObject> ProfessionalTaskEnumList
        {
            get
            {
                if (_ProfessionalTaskEnumList == null)
                {
                    _ProfessionalTaskEnumList = new List<ProfessionalTaskEnumObject>();
                    foreach (string name in Enum.GetNames(typeof(ProfessionalTaskEnum)))
                    {
                        ProfessionalTaskEnum item = (ProfessionalTaskEnum)Enum.Parse(typeof(ProfessionalTaskEnum), name);
                        if (!item.ToString().StartsWith("MOR"))
                        switch (item)
                        {
                            case ProfessionalTaskEnum.AMORT:
                                _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "AMORT: Giảm trừ phí khuyễn mãi"));
                                break;
                            case ProfessionalTaskEnum.ASSET:
                                _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "ASSET: Tính khấu hao tài sản cố định hữu hình"));
                                break;
                            case ProfessionalTaskEnum.AST01:
                                _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "AST01: Tính khấu hao tài sản cố định vô hình"));
                                break;
                            case ProfessionalTaskEnum.INTED:
                                _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "INTED: Đổ lãi vào TK KH TN"));
                                break;
                            case ProfessionalTaskEnum.INTEF:
                                _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "INTEF: Đổ lãi vào TK KH NN"));
                                break;
                            //case ProfessionalTaskEnum.STFEE:
                            //    _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "STFEE: Tính phí LK"));
                            //    break;
                            case ProfessionalTaskEnum.DEPO1:
                                _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "DEPO1: Tài khoản chờ lưu ký"));
                                break;
                            case ProfessionalTaskEnum.DEPO2:
                                _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "DEPO2: Hạch toán báo nợ LK (5 bút toán)"));
                                break;
                            case ProfessionalTaskEnum.DEPO3:
                                _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "DEPO3: Hạch toán chuyển CK GD (3 bút toán)"));
                                break;
                            case ProfessionalTaskEnum.DEPO4:
                                _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "DEPO4: Hạch toán xuất CK chờ lưu ký do TTLK trả hồ sơ"));
                                break;
                            case ProfessionalTaskEnum.DEPO11:
                                _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "DEPO11: Hạch toán chờ xuất"));
                                break;
                            case ProfessionalTaskEnum.DEPO12:
                                _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "DEPO12: Hạch toán báo có của trung tâm lưu ký"));
                                break;
                            case ProfessionalTaskEnum.DEPO13:
                                _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "DEPO13 Xác nhận hủy rút"));
                                break;

                            //case ProfessionalTaskEnum.MOR01:
                            //    _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR01: Cầm cố > Xuất chứng khoán cầm cố > Nhà đầu tư trong nước > Bút toán xuất"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR02:
                            //    _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR02: Cầm cố > Xuất chứng khoán cầm cố > Nhà đầu tư trong nước > Bút toán nhập"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR03:
                            //    _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR03: Cầm cố > Xuất chứng khoán cầm cố > Nhà đầu tư nước ngoài > Bút toán xuất"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR04:
                            //    _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR04: Cầm cố > Xuất chứng khoán cầm cố > Nhà đầu tư nước ngoài > Bút toán nhập"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR05: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR05: Cầm cố > Xuất chứng khoán cầm cố > Tự doanh > Bút toán xuất"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR06: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR06: Cầm cố > Xuất chứng khoán cầm cố > Tự doanh > Bút toán nhập"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR11: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR11: Cầm cố > Bút toán phát vay (CustomerPostype=0)"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR12: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR12: Cầm cố > Bút toán phát vay (CustomerPostype=1) NDT tai Dai Ly"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR13: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR13: Cầm cố > Bút toán phát vay (CustomerPostype=1) NDT nuoc ngoai"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR21: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR21: Cầm cố > Bút toán thu nợ (CustomerPostype=0)"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR22: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR22: Cầm cố > Bút toán thu nợ (CustomerPostype=1) NDT tai Dai Ly"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR23: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR23: Cầm cố > Bút toán thu nợ (CustomerPostype=1) NDT nuoc ngoai"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR31: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR31: Cầm cố > Bút toán thu lãi (CustomerPostype=0)"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR32: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR32: Cầm cố > Bút toán thu lãi (CustomerPostype=1) NDT tai Dai Ly"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR33: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR33: Cầm cố > Bút toán thu lãi (CustomerPostype=1) NDT nuoc ngoai"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR41: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR41: Cầm cố > Giải tỏa chứng khoán cầm cố > Nhà đầu tư trong nước > Bút toán nhập"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR42: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR42: Cầm cố > Giải tỏa chứng khoán cầm cố > Nhà đầu tư trong nước > Bút toán xuất"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR43: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR43: Cầm cố > Giải tỏa chứng khoán cầm cố > Nhà đầu tư nước ngoài > Bút toán nhập"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR44: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR44: Cầm cố > Giải tỏa chứng khoán cầm cố > Nhà đầu tư nước ngoài > Bút toán xuất"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR45: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR45: Cầm cố > Giải tỏa chứng khoán cầm cố > Nhà đầu tư nước ngoài > Bút toán nhập"));
                            //    break;
                            //case ProfessionalTaskEnum.MOR46: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "MOR46: Cầm cố > Giải tỏa chứng khoán cầm cố > Nhà đầu tư nước ngoài > Bút toán xuất"));
                            //    break;
                            case ProfessionalTaskEnum.REX01: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "REX01: Bút toán thực hiện quyền theo chứng khoán"));
                                break;
                            case ProfessionalTaskEnum.REX10: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "REX10: Hủy niêm yết"));
                                break;
                            case ProfessionalTaskEnum.REX11: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "REX11: Bút toán thực hiện quyền theo chứng khoán (Tài khoản nước ngoài)"));
                                break;
                            case ProfessionalTaskEnum.REXHO: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "REXHO: Right Exec at Head Office: bút toán thực hiện quyền bằng tiền mặt tại HS chính"));
                                break;
                            case ProfessionalTaskEnum.REXBO: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "REXBO: RightExec at Branch Office: bút toán thực hiện quyền bằng tiền mặt tại chi nhánh"));
                                break;
                            case ProfessionalTaskEnum.REXHT: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "REXHT: Right Exec Tax at Head Office: bút toán thuế TNCN bằng tiền mặt tại HS chính"));
                                break;
                            case ProfessionalTaskEnum.REXBT: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "REXBT: RightExec Tax at Branch Office: bút toán thuế TNCN bằng tiền mặt tại chi nhánh"));
                                break;
                            //case ProfessionalTaskEnum.REX22: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "REX22: TTheo chuẩn kết nối ngân hàng - Thực hiện quyền bằng tiền (KH trong nước)"));
                            //    break;
                            case ProfessionalTaskEnum.REX33: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "REX33: Nộp tiền mặt tại quỹ - Đăng kí phát hành thêm"));
                                break;
                            case ProfessionalTaskEnum.REX34: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "REX34: Nộp tiền vào tài khoản tại ngân hàng - Đăng ký phát hành thêm"));
                                break;
                            case ProfessionalTaskEnum.PAL01: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "PAL01: ProfitAndLost - Bút toán thứ nhất kết chuyển doanh thu"));
                                break;
                            case ProfessionalTaskEnum.PAL02: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "PAL02: Bút toán thứ hai kết chuyển chi phí"));
                                break;
                            case ProfessionalTaskEnum.PAL03: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "PAL03: Bút toán xác định lỗ lãi"));
                                break;
                            case ProfessionalTaskEnum.ST001: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "ST001: Xuất chứng khoán chờ chuyển khoản (TK trong nước)"));
                                break;
                            case ProfessionalTaskEnum.ST002: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "ST002: Xuất chứng khoán chờ chuyển khoản (TK nước ngoài)"));
                                break;
                            case ProfessionalTaskEnum.ST003: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "ST003: Nhập chứng khoán chờ chuyển khoản vào TK nội bộ"));
                                break;
                            case ProfessionalTaskEnum.ST004: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "ST004: Xuất chứng khoán chờ chuyển khoản"));
                                break;
                            case ProfessionalTaskEnum.OST10: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "OST10: Hạch toán xuất CK lô lẻ - Hạch toán ngoại bảng"));
                                break;
                            case ProfessionalTaskEnum.OST20: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "OST20: Hạch toán xuất CK lô lẻ - HS"));
                                break;
                            case ProfessionalTaskEnum.OST21: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "OST21: Hạch toán xuất CK lô lẻ - Thue TNCN - HS"));
                                break;
                            case ProfessionalTaskEnum.OST22: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "OST22: Hạch toán xuất CK lô lẻ - CN"));
                                break;
                            case ProfessionalTaskEnum.OST23: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "OST23: Hạch toán xuất CK lô lẻ - Thue TNCN - CN"));
                                break;
                            case ProfessionalTaskEnum.OST24: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "OST24: Hạch toán xuất chứng khoán lô lẻ - Chưa kết nối ngân hàng - Chi nhánh - Bút toán 2"));
                                break;
                            case ProfessionalTaskEnum.OST25: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "OST25: Hạch toán xuất chứng khoán lô lẻ - Chưa kết nối ngân hàng - Chi nhánh - Bút toán 3"));
                                break;
                            case ProfessionalTaskEnum.OST30: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "OST30: Hạch toán xuất CK lô lẻ - Bút toán bù trừ hội sở và chi nhánh"));
                                break;
                            case ProfessionalTaskEnum.OST40: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "OST40: hạch toán xuất CK lô lẻ - Kết nối online - Hội sở chính - Bút toán 1"));
                                break;
                            case ProfessionalTaskEnum.OST41: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "OST41: Hạch toán xuất CK lô lẻ - Kết nối online - Hội sở chính - Bút toán 2"));
                                break;
                            case ProfessionalTaskEnum.OST42: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "OST42: Hạch toán xuất CK lô lẻ - Kết nối online - chi nhánh - Bút toán 1"));
                                break;
                            case ProfessionalTaskEnum.OST43: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "OST43: Hạch toán xuất CK lô lẻ - Kết nối online - chi nhánh - Bút toán 2"));
                                break;
                            case ProfessionalTaskEnum.OST50: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "OST50: Xuất ck lô lẻ tự doanh"));
                                break;
                            case ProfessionalTaskEnum.OST51: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "OST51: Nhập ck tự doanh"));
                                break;


                            //case ProfessionalTaskEnum.BCCST: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "BuyCashContract (S) Securities tranfer"));
                            //    break;
                            //case ProfessionalTaskEnum.BCSCV: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "BuyCashContract (S) Securities ConlectDebts Value"));
                            //    break;
                            //case ProfessionalTaskEnum.BCSCF: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "BuyCashContract (S) Securities conlectDebts Fee"));
                            //    break;
                            //case ProfessionalTaskEnum.BCCDT: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "BuyCashContract (D) Bond tranfer"));
                            //    break;
                            //case ProfessionalTaskEnum.BCDCV: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "BuyCashContract (D) ConlectDebts Value"));
                            //    break;
                            //case ProfessionalTaskEnum.BCDCF: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "BuyCashContract (D) conlectDebts Fee"));
                            //    break;

                            case ProfessionalTaskEnum.REXRC: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "REXRC = Right Exec Register Confirm: bút toán xác nhận thu tiền"));
                                break;
                            case ProfessionalTaskEnum.REXDC: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "REXDC = Right Exec Delete Confirm: Bút toán hủy xác nhận thu tiền"));
                                break;
                            case ProfessionalTaskEnum.REXRD: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "N: 112111.9999.1121110001 C: 114111.9999.1141119999 (trong nước) C: 114311.9999.1143119999 (nước ngoài)"));
                                break;

                            //"Yêu cầu từ MHBS (19/08/2009)"
                            case ProfessionalTaskEnum.STRA1: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "STRA1: Chuyển khoản thừa kế")); break;
                            case ProfessionalTaskEnum.STRA2: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "STRA2: Chuyển khoản tất toán tài khoản")); break;
                            case ProfessionalTaskEnum.STRA3: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "STRA3: Chuyển khoản sửa lỗi giao dịch")); break;
                            case ProfessionalTaskEnum.STRA4: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "STRA4: Chuyển khoản hỗ trợ thanh toán")); break;
                            case ProfessionalTaskEnum.STRA5: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "STRA5: Chuyển khoản hoàn trả hỗ trợ thanh toán")); break;
                            case ProfessionalTaskEnum.STRA6: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "STRA6: Chuyển khoản khác")); break;

                            case ProfessionalTaskEnum.SRCE1: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "SRCE1: Nhận chuyển khoản thừa kế")); break;
                            case ProfessionalTaskEnum.SRCE2: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "SRCE2: Nhận chuyển khoản tất toán tài khoản")); break;
                            case ProfessionalTaskEnum.SRCE3: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "SRCE3: Nhận chuyển khoản sửa lỗi giao dịch")); break;
                            case ProfessionalTaskEnum.SRCE4: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "SRCE4: Nhận chuyển khoản hỗ trợ thanh toán")); break;
                            case ProfessionalTaskEnum.SRCE5: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "SRCE5: Nhận chuyển khoản hoàn trả hỗ trợ thanh toán")); break;
                            case ProfessionalTaskEnum.SRCE6: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "SRCE6: Nhận chuyển khoản khác")); break;
                            case ProfessionalTaskEnum.CKOL1: _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), "CKOL1: Nhận chuyển khoản Online")); break;
                            default:
                                _ProfessionalTaskEnumList.Add(new ProfessionalTaskEnumObject(item.ToString(), string.Format("Enum {0} chưa được khai báo nội dung mô tả trong code", item.ToString())));
                                break;
                        }
                    }
                }
                return _ProfessionalTaskEnumList;
            }
        }
    }

    public class ProfessionalTaskEnumObject
    {
        private string _Code;

        public string Code
        {
            get { return _Code; }
            set { _Code = value; }
        }

        private string _Description;

        public string Description
        {
            get { return _Description; }
            set { _Description = value; }
        }

        public ProfessionalTaskEnumObject() { }
        public ProfessionalTaskEnumObject(string code, string description)
        {
            _Code = code;
            _Description = description;
        }
    }

    #region for workflow configurations
    public enum MortgageProfessionalTask
    {
        /// <summary>
        /// Duyệt hợp đồng
        /// </summary>
        Approve,
        /// <summary>
        /// Phát vay
        /// </summary>
        Transfer,
        /// <summary>
        /// Thu nợ
        /// </summary>
        CollectDebt,
        /// <summary>
        /// Thu lãi
        /// </summary>
        Interest,
        /// <summary>
        /// Phi
        /// </summary>
        ManageFee,
        /// <summary>
        /// Bổ xung
        /// </summary>
        Replace,
        /// <summary>
        /// Giải tỏa từng phần
        /// </summary>
        Release,
        /// <summary>
        /// Giải tỏa toàn bộ
        /// </summary>
        ReleaseAll,
        /// <summary>
        /// Tất toán
        /// </summary>
        Finish,
        /// <summary>
        /// Không xác định
        /// </summary>
        None

    }

    public enum MarginProfessionalTask
    {
        /// <summary>
        /// Phong tỏa CK về
        /// </summary>
        Block,
        /// <summary>
        /// Phát vay
        /// </summary>
        Transfer,
        /// <summary>
        /// Thu nợ
        /// </summary>
        CollectDebt,
        /// <summary>
        /// Thu lãi
        /// </summary>
        Interest,
        /// <summary>
        /// Phi
        /// </summary>
        ManageFee,
        /// <summary>
        /// Bổ xung
        /// </summary>
        Replace,
        /// <summary>
        /// Giải tỏa từng phần
        /// </summary>
        Release,
        /// <summary>
        /// Giải tỏa toàn bộ
        /// </summary>
        ReleaseAll,
        /// <summary>
        /// Tất toán
        /// </summary>
        Finish,
        /// <summary>
        /// Không xác định
        /// </summary>
        None

    }
    public enum DepoFee
    {
        /// <summary>
        /// Thu phí lưu ký
        /// </summary>
        CollectFee,
        CollectDebt

    }

    public enum SavingProfessionalTask
    {
        /// <summary>
        /// Phong tỏa tiền
        /// </summary>
        Hold,
        /// <summary>
        /// Duyệt hợp đồng chưa phong tỏa
        /// </summary>
        Approve,
        /// <summary>
        /// Duyệt hợp đồng đã phong tỏa
        /// </summary>
        Approve2,
        /// <summary>
        /// Tính lãi
        /// </summary>
        CalInterest,
        /// <summary>
        /// Trả lãi
        /// </summary>
        PayInterest,
        /// <summary>
        /// Bổ xung
        /// </summary>
        UnHold,
        /// <summary>
        /// Giải tỏa tiền
        /// </summary>
        Release,
        /// <summary>
        /// Giải tỏa toàn bộ
        /// </summary>
        ReleaseAll,
        /// <summary>
        /// Tất toán
        /// </summary>
        Finish,
        /// <summary>
        /// Không xác định
        /// </summary>
        None

    }
    #endregion
    
}
